<?php

namespace Project\ScrumBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Utilisateur
 *
 * @ORM\Table(name="utilisateur")
 * @ORM\Entity
 */
class Utilisateur
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="email", type="string", length=45, nullable=true)
     */
    private $email;

    /**
     * @var string
     *
     * @ORM\Column(name="password", type="string", length=45, nullable=true)
     */
    private $password;

    /**
     * @var string
     *
     * @ORM\Column(name="adresse", type="string", length=45, nullable=true)
     */
    private $adresse;

    /**
     * @var string
     *
     * @ORM\Column(name="nom", type="string", length=45, nullable=true)
     */
    private $nom;

    /**
     * @var string
     *
     * @ORM\Column(name="prenom", type="string", length=45, nullable=true)
     */
    private $prenom;

    /**
     * @var \Doctrine\Common\Collections\Collection
     *
     * @ORM\ManyToMany(targetEntity="Groupe", inversedBy="utilisateur")
     * @ORM\JoinTable(name="utilisateur_has_groupe",
     *   joinColumns={
     *     @ORM\JoinColumn(name="utilisateur_id", referencedColumnName="id")
     *   },
     *   inverseJoinColumns={
     *     @ORM\JoinColumn(name="groupe_id_groupe", referencedColumnName="id_groupe")
     *   }
     * )
     */
    private $groupeGroupe;

    /**
     * @var \Role
     *
     * @ORM\ManyToOne(targetEntity="Role")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="ref_role", referencedColumnName="id")
     * })
     */
    private $refRole;

    /**
     * Constructor
     */
    public function __construct()
    {
        $this->groupeGroupe = new \Doctrine\Common\Collections\ArrayCollection();
    }
    

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set email
     *
     * @param string $email
     * @return Utilisateur
     */
    public function setEmail($email)
    {
        $this->email = $email;
    
        return $this;
    }

    /**
     * Get email
     *
     * @return string 
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * Set password
     *
     * @param string $password
     * @return Utilisateur
     */
    public function setPassword($password)
    {
        $this->password = $password;
    
        return $this;
    }

    /**
     * Get password
     *
     * @return string 
     */
    public function getPassword()
    {
        return $this->password;
    }

    /**
     * Set adresse
     *
     * @param string $adresse
     * @return Utilisateur
     */
    public function setAdresse($adresse)
    {
        $this->adresse = $adresse;
    
        return $this;
    }

    /**
     * Get adresse
     *
     * @return string 
     */
    public function getAdresse()
    {
        return $this->adresse;
    }

    /**
     * Set nom
     *
     * @param string $nom
     * @return Utilisateur
     */
    public function setNom($nom)
    {
        $this->nom = $nom;
    
        return $this;
    }

    /**
     * Get nom
     *
     * @return string 
     */
    public function getNom()
    {
        return $this->nom;
    }

    /**
     * Set prenom
     *
     * @param string $prenom
     * @return Utilisateur
     */
    public function setPrenom($prenom)
    {
        $this->prenom = $prenom;
    
        return $this;
    }

    /**
     * Get prenom
     *
     * @return string 
     */
    public function getPrenom()
    {
        return $this->prenom;
    }

    /**
     * Add groupeGroupe
     *
     * @param \Project\ScrumBundle\Entity\Groupe $groupeGroupe
     * @return Utilisateur
     */
    public function addGroupeGroupe(\Project\ScrumBundle\Entity\Groupe $groupeGroupe)
    {
        $this->groupeGroupe[] = $groupeGroupe;
    
        return $this;
    }

    /**
     * Remove groupeGroupe
     *
     * @param \Project\ScrumBundle\Entity\Groupe $groupeGroupe
     */
    public function removeGroupeGroupe(\Project\ScrumBundle\Entity\Groupe $groupeGroupe)
    {
        $this->groupeGroupe->removeElement($groupeGroupe);
    }

    /**
     * Get groupeGroupe
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getGroupeGroupe()
    {
        return $this->groupeGroupe;
    }

    /**
     * Set refRole
     *
     * @param \Project\ScrumBundle\Entity\Role $refRole
     * @return Utilisateur
     */
    public function setRefRole(\Project\ScrumBundle\Entity\Role $refRole = null)
    {
        $this->refRole = $refRole;
    
        return $this;
    }

    /**
     * Get refRole
     *
     * @return \Project\ScrumBundle\Entity\Role 
     */
    public function getRefRole()
    {
        return $this->refRole;
    }
}